﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class StateFeeCourt : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IStateFeeCourt {
        
        private decimal @__amount;
        
        private System.DateTime @__paymentDate;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__account;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__bankName;
        
        private bool @__paidWithBankLink;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__referenceNumber;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__remitterName;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__stateFeeStatement;
        
        public StateFeeCourt() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public StateFeeCourt(decimal @amount, System.DateTime @paymentDate, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @account, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @bankName, bool @paidWithBankLink, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @referenceNumber, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @remitterName, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @stateFeeStatement) {
            this.@__amount = @amount;
            this.@__paymentDate = @paymentDate;
            this.@__account = @account;
            this.@__bankName = @bankName;
            this.@__paidWithBankLink = @paidWithBankLink;
            this.@__referenceNumber = @referenceNumber;
            this.@__remitterName = @remitterName;
            this.@__stateFeeStatement = @stateFeeStatement;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected StateFeeCourt(IStateFeeCourt @stateFeeCourt) {
            this.@__amount = @stateFeeCourt.Amount;
            this.@__paymentDate = @stateFeeCourt.PaymentDate;
            this.@__account = @stateFeeCourt.Account;
            this.@__bankName = @stateFeeCourt.BankName;
            this.@__paidWithBankLink = @stateFeeCourt.PaidWithBankLink;
            this.@__referenceNumber = @stateFeeCourt.ReferenceNumber;
            this.@__remitterName = @stateFeeCourt.RemitterName;
            this.@__stateFeeStatement = @stateFeeCourt.StateFeeStatement;
        }
        
        public virtual decimal Amount {
            get {
                return this.@__amount;
            }
            set {
                this.@__amount = value;
            }
        }
        
        public virtual System.DateTime PaymentDate {
            get {
                return this.@__paymentDate;
            }
            set {
                this.@__paymentDate = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString Account {
            get {
                return this.@__account;
            }
            set {
                this.@__account = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString BankName {
            get {
                return this.@__bankName;
            }
            set {
                this.@__bankName = value;
            }
        }
        
        public virtual bool PaidWithBankLink {
            get {
                return this.@__paidWithBankLink;
            }
            set {
                this.@__paidWithBankLink = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString ReferenceNumber {
            get {
                return this.@__referenceNumber;
            }
            set {
                this.@__referenceNumber = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString RemitterName {
            get {
                return this.@__remitterName;
            }
            set {
                this.@__remitterName = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString StateFeeStatement {
            get {
                return this.@__stateFeeStatement;
            }
            set {
                this.@__stateFeeStatement = value;
            }
        }
    }
}
